From ac786bbd3f9f9b512370ee897bbbaf7af31d9987 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 9 Jan 2001 20:11:16 +0000 Subject: [PATCH] (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call function string_bytes. (GC_CHECK_STRING_BYTES): Moved here from alloc.c. --- src/lisp.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/lisp.h b/src/lisp.h index f2096a5f616..b1951ea4365 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -26,6 +26,12 @@ Boston, MA 02111-1307, USA. */ #define P_(proto) () #endif +/* Define this temporarily to hunt a bug. If defined, the size of + strings is redundantly recorded in sdata structures so that it can + be compared to the sizes recorded in Lisp strings. */ + +#define GC_CHECK_STRING_BYTES 1 + /* These are default choices for the types to use. */ #ifdef _LP64 @@ -620,9 +626,20 @@ struct Lisp_Cons (XSTRING (STR)->size_byte >= 0) /* Return the length in bytes of STR. */ + +#ifdef GC_CHECK_STRING_BYTES + +struct Lisp_String; +extern int string_bytes P_ ((struct Lisp_String *)); +#define STRING_BYTES(S) string_bytes ((S)) + +#else /* not GC_CHECK_STRING_BYTES */ + #define STRING_BYTES(STR) \ ((STR)->size_byte < 0 ? (STR)->size : (STR)->size_byte) +#endif /* not GC_CHECK_STRING_BYTES */ + /* Set the length in bytes of STR. */ #define SET_STRING_BYTES(STR, SIZE) ((STR)->size_byte = (SIZE)) -- 2.30.2